"""
项目的默认配置文件
"""
import logging


class Config:
    # 配置数据库和sqlalchemy
    HOSTNAME = '127.0.0.1'
    PORT = '3306'
    DATABASE = 'dongbao'
    USERNAME = 'root'
    PASSWORD = 'itcast'
    DB_URI = f'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}'
    SQLALCHEMY_DATABASE_URI = DB_URI
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # 不需要跟踪数据的修改

    # 配置日志
    # 日志的级别 DEBUG为最小的级别，信息比较详细
    LOGGING_LEVEL = logging.DEBUG
    # 日志的存放文件
    LOGGING_FILE_DIR = 'logs/'
    # 日志的大小 为300MB
    LOGGING_FILE_MAX_BYTES = 300 * 1024 * 1024
    # 日志的备份个数
    LOGGING_FILE_BACKUP = 10

    # 采用Redis保存数据，默认保存到内存中，需要安装flask-redis  使用第0个数据库
    RATELIMIT_STORAGE_URL = 'redis://127.0.0.1:6379/0'
    # 限制策略，移动窗口，时间窗口会自动变化
    RATELIMIT_STRATEGY = 'moving-window'

    # 配置redis连接  使用第1个数据库
    REDIS_URL = 'redis://127.0.0.1:6379/1'


class DevelopmentConfig(Config):
    """
    生产环境
    """
    DEBUG = True
    SQLALCHEMY_ECHO = True  # 打印sql语句
    ENV = 'development'


class ProductionConfig(Config):
    """
    项目部署后采用的环境
    """
    DEBUG = False
    ENV = 'product'
